export interface ITranslateData {
    format: number;
    translations: Record<'en' | 'zh', Array<string>>;
}

export type TTravelReadDirFiles = Array<{ filename: string; filepath: string }>;

export interface IDirInfo {
    innerDirs: IDirInnerDirInfo[];
    innerAllFiles: IDirInnerFileInfo[];
}

export interface IDirFileInfo {
    dirs: IDirInnerFileInfo[];
    files: IDirInnerFileInfo[];
    category: {
        pdf: IDirInnerFileInfo[];
        excel: IDirInnerFileInfo[];
        image: IDirInnerFileInfo[];
        video: IDirInnerFileInfo[];
        audio: IDirInnerFileInfo[];
        other: IDirInnerFileInfo[];
    };
}

export interface IDirInnerDirInfo {
    type: 'dir';
    path: string;
    dirname: string;
    child: IDirInnerDirInfo[] | null;
}

export interface IDirInnerFileInfo {
    type: 'file' | 'dir';
    fileType: TFileType;
    path: string;
    ext: string | null;
    dirname: string | null;
    filename: string | null;
    child: IDirInnerFileInfo[] | null;
}

export type TFileType = 'other' | 'audio' | 'video' | 'image' | 'excel' | 'pdf' | null;

export interface IRecordTravelSelf {
    [key: string]: string | IRecordTravelSelf;
}

export interface IPresetDefinedData {
    assetsDirPath: {
        desp: string;
        path: string;
    };
}

export interface IFileDetail {
    content: string;
    filename: string;
    filepath: string;
}
